package com.hr.runnerbuddy;

import java.io.ByteArrayOutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;

import com.hr.runnerbuddy.database.DBAdapter;
import com.hr.runnerbuddy.database.Parcour;

import android.app.Activity;
import android.app.Dialog;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Bitmap.CompressFormat;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;

public class Parcourkeuze extends Activity {

	private DBAdapter dbAdapter;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.parcourkeuze);
	}

	public Bitmap getParcourIcon(byte[] plaatje) {
		// bitmap to byte[] conversie
		Bitmap bitmap = BitmapFactory.decodeResource(getApplicationContext()
				.getResources(), R.drawable.route_rotterdam2);
		ByteArrayOutputStream bos = new ByteArrayOutputStream();
		bitmap.compress(CompressFormat.PNG, 0 /* ignored for PNG */, bos);
		byte[] bitmapdata = bos.toByteArray();
		Log.d("whoops", "Byte[] bitmap image lengte " + bitmapdata.length);

		// if bitmapdata is the byte array then getting bitmap goes like this
		// Bitmap bitmap2 = BitmapFactory.decodeByteArray(bitmapdata, 0,
		// bitmapdata.length);
		Bitmap bitmap2 = BitmapFactory.decodeByteArray(plaatje, 0,
				plaatje.length);
		return bitmap2;
	}

	@Override
	protected void onResume() {
		super.onResume();
		// this button will show the dialog

		dbAdapter = new DBAdapter(getApplicationContext());
		dbAdapter.open();

		if (dbAdapter.getParcourRowsAmount() > 0) {

			ArrayList<Parcour> parcourslist = dbAdapter.getAllParcours();

			for(int i=0; i<parcourslist.size(); i++) {

				ImageButton parcouritemplaatje = (ImageButton) findViewById(R.id.parcourkeuzeitemplaatje);
				final TextView parcouritemtitel = (TextView) findViewById(R.id.parcourkeuzeitemtitel);
				final TextView parcouritemlengte = (TextView) findViewById(R.id.parcourkeuzeitemlengte);
				
				final Bitmap bitmap = getParcourIcon(parcourslist.get(i).getPlaatje());
				parcouritemplaatje.setImageBitmap(bitmap);
				
				final String parcournaam = parcourslist.get(i).getNaam();
				final String parcourlengte = Integer.toString(parcourslist.get(i).getLengte());
				parcouritemtitel.setText(parcournaam);
				parcouritemlengte.setText(parcourlengte + " m");

				parcouritemplaatje.setOnClickListener(new OnClickListener() {
					public void onClick(View v) {
						// set up dialog
						final Dialog dialog = new Dialog(Parcourkeuze.this,
								android.R.style.Theme_Translucent_NoTitleBar);
						dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
						dialog.setContentView(R.layout.parcourkeuzedialog);

						ImageView parcourkeuzedialogimage = (ImageView) dialog
								.findViewById(R.id.parcourkeuzedialogimage);
						parcourkeuzedialogimage.setImageBitmap(bitmap);

						dialog.setCancelable(true);
						// there are a lot of settings, for dialog, check them
						// all out!
						TextView tvLokatie = (TextView) dialog
								.findViewById(R.id.tViewLokatie);
						tvLokatie.setText(parcournaam);
						TextView tvLengte = (TextView) dialog
								.findViewById(R.id.tViewLengte);
						tvLengte.setText(parcourlengte+" m");

						// set up button
						Button jaknop = (Button) dialog
								.findViewById(R.id.parcourkeuzedialogjaknop);
						Button neeknop = (Button) dialog
								.findViewById(R.id.parcourkeuzedialogneeknop);
						jaknop.setOnClickListener(new OnClickListener() {
							public void onClick(View v) {
								dialog.cancel();
								Intent intent = new Intent(Parcourkeuze.this,
										Parcouropties.class);
								intent.putExtra("parcournaam", parcournaam);
								intent.putExtra("parcourlengte", parcourlengte);
								startActivity(intent);
							}
						});
						neeknop.setOnClickListener(new OnClickListener() {
							public void onClick(View v) {
								dialog.cancel();
							}
						});
						// now that the dialog is set up, it's time to show it
						dialog.show();
					}
				});
			}

		}
		dbAdapter.close();
	}
}